home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.1 [x86] / NeXT Step 3.1 Intel.cdr.dmg / private / etc / rc.standard < prev    next >
Text File  |  1993-04-23  |  18KB  |  549 lines

  1. #!/bin/sh -u
  2. #
  3. # This is the multi-user startup script.
  4. #
  5. # Copyright (C) 1992 by NeXT Computer, Inc.  All rights reserved.
  6. #
  7. # Note that all "echo" commands are in parentheses so that
  8. # the main shell does not open a tty and get its process group set.
  9.  
  10. #
  11. # Avoid bailing out on ^C's.  This is needed both for security reasons
  12. # as well as for the "Press Control-C to continue without a network"
  13. # interaction (under ifconfig in rc.net) to function properly.
  14. #
  15. trap "true" 2
  16.  
  17. #
  18. # Initialize the path to be used and inherited by all the commands herein
  19. #
  20. if [ -f /.path ]; then
  21.     . /.path
  22. else
  23.     PATH=/usr/ucb:/bin:/usr/bin:/etc:/usr/etc; export PATH
  24.     HOME=/; export HOME
  25. fi
  26.  
  27. # Are we booting from a CD-ROM?  If so, switch over to /etc/rc.cdrom.
  28.  
  29. if [ -d /NextCD -a -f /etc/rc.cdrom.`/usr/bin/arch` ]; then
  30.     sh /etc/rc.cdrom.`/usr/bin/arch` $1
  31.     (echo "CD-ROM boot procedure complete.")    >/dev/console
  32.     /etc/halt -e
  33.     exit 0
  34. fi
  35.  
  36. # Start the Mach network message server, which forwards Mach IPC over the
  37. # network and provides a name-to-port mapping service.
  38. # We need to start the nmserver here because any of Config's device drivers
  39. # may need to register themselves with the name server.  Unfortuntely, the
  40. # network isn't ready yet, but that's OK since we tell the nmserver to
  41. # reinitialize its network code later in rc.net.
  42.  
  43. if [ -f /usr/etc/nmserver ]; then
  44.     /usr/etc/nmserver -nonet >/dev/console 2>&1
  45. fi
  46.  
  47. # Configure kern-loaded drivers - Intel only
  48. if [ `/usr/bin/arch` = i386 -a -f /usr/etc/driverLoader ]; then
  49.     (echo "Configuring Device Drivers")         >/dev/console
  50.     /usr/etc/driverLoader a >/dev/console 2>&1
  51. fi
  52.  
  53. #
  54. # Configure network & hostname
  55. #
  56. fbshow -A -B -E -I "Configuring*Network..."
  57. sh /etc/rc.net -h >/dev/console
  58.  
  59. #
  60. #  Determine if the network is up by looking for any non-loopback
  61. #  internet network interfaces.
  62. #
  63. if ifconfig -a | grep -v "127.0.0.1" | grep -v "0.0.0.0" | grep -s inet; then
  64.     NETWORKUP=-YES-
  65. else
  66.     NETWORKUP=-NO-
  67. fi
  68.  
  69.  
  70. # Print out an appropriate message.  MESSAGE is used later in the log.
  71.  
  72. if  [ $1x = autobootx ]; then
  73.     # (echo Automatic reboot in progress...)        >/dev/console
  74.     MESSAGE="Reboot"
  75. else
  76.     (echo Multiuser startup in progress...)            >/dev/console
  77.     MESSAGE="Multi-user startup"
  78. fi
  79.  
  80. # Check for and mount swapdisks.
  81. sh /etc/rc.swap $1
  82.  
  83. # Mount local filesystems (according to /etc/fstab).
  84. mount -vat 4.3                        >/dev/console 2>&1
  85.  
  86. # Display a message in the iconic boot window.
  87. fbshow -A -B -E -I "Checking*System*Files..."
  88.  
  89. # Attempt to recover the passwd file, if needed.  This procedure is
  90. # primarily historical and makes sense only when the passwd file is edited
  91. # using the vipw command.  
  92.  
  93. if [ -s /etc/ptmp ]; then
  94.     if [ -s /etc/passwd ]; then
  95.         (echo 'Passwd file conflict with ptmp:')    >/dev/console
  96.         ls -l /etc/passwd /etc/ptmp            >/dev/console
  97.         (echo 'Moving ptmp to ptmp.save.')        >/dev/console
  98.         mv -f /etc/ptmp /etc/ptmp.save
  99.     else
  100.         (echo 'Passwd file recovered from ptmp.')     >/dev/console
  101.         mv /etc/ptmp /etc/passwd
  102.     fi
  103. elif [ -r /etc/ptmp ]; then
  104.     (echo 'Removing passwd lock file')            >/dev/console
  105.     /bin/rm -f /etc/ptmp
  106. fi
  107.  
  108. # Start the virtual memory system.
  109. /usr/etc/mach_swapon -av                >/dev/console 2>&1
  110.  
  111. (echo -n 'Cleaning up:')                >/dev/console
  112.  
  113. # If the shutdown command was used to shut the system down, the file
  114. # /etc/nologin may have been created to prevent users from logging in.  
  115. # Remove it so that logins are enabled when the system comes up.
  116.  
  117. /bin/rm -f /etc/nologin
  118. (echo -n ' /etc/nologin')                >/dev/console
  119.  
  120. # Reset pseudo-terminals (ptys) to their default states.
  121. /usr/etc/chown root.tty /dev/tty[pqrs]*
  122. /bin/chmod 666 /dev/tty[pqrs]*
  123. (echo -n ' ptys')                    >/dev/console
  124.  
  125. # Reset permissions and ownership of raw live floppy devices.
  126. # Loginwindow changes these to be owned by the logged in user.
  127. /usr/etc/chown root.operator /dev/rfd[01]b
  128. /bin/chmod 660 /dev/rfd[01]b
  129. (echo -n ' floppy devices')                                   >/dev/console
  130.  
  131. # Recover files being edited by ex, vi, or e when the system was restarted.
  132. (cd /tmp; /usr/lib/ex3.7preserve -a)
  133. (echo -n ' editors')                     >/dev/console
  134.  
  135. # Clean out /tmp.
  136. (cd /tmp; find . ! -name . ! -name lost+found ! -name quotas \
  137.     -exec rm -r - {} \; )
  138. (echo -n ' /tmp')                    >/dev/console
  139.  
  140. # Clear empty subdirectories of /Net.
  141. (cd /private/Net; find . ! -name . -type d -exec rmdir {} \; ) 
  142.  
  143. # Clear symlinks from /Net, too.
  144. (cd /private/Net; find . ! -name . -type l -exec rm {} \; ) 
  145. (echo -n ' /Net')                    >/dev/console
  146.  
  147. (echo '.')                        >/dev/console
  148.  
  149. # Syslog must be started before daemons are launched from rc.local.
  150. # This allows appropriate log messages to find their way to the console.
  151.  
  152. (echo -n Starting early daemons:)                >/dev/console
  153. if [ -f /usr/etc/syslogd -a -f /etc/syslog.conf ]; then
  154.     /bin/rm -f /dev/log
  155.     # If you want a timestamp to be logged periodically,
  156.     # modify the invocation of syslogd below.  For example, 
  157.     # for a half-hourly timestamp, add the argument "-m30".
  158.     /usr/etc/syslogd  && (echo -n ' syslogd')        >/dev/console
  159. fi
  160. (echo '.')                            >/dev/console
  161.  
  162. # Read the configuration information set by the HostManager application.
  163. . /etc/hostconfig
  164.  
  165. # Set up NIS domain.
  166.  
  167. if [ "${YPDOMAIN=-NO-}" != "-NO-" -a $NETWORKUP = "-YES-" ]; then
  168.     (echo "Setting NIS domainname to $YPDOMAIN")        >/dev/console
  169.     domainname $YPDOMAIN                >/dev/console 2>&1
  170. fi
  171.  
  172. # Rpc and net services are the minimal set needed to use the network.
  173. (echo -n 'Starting RPC and network services:')            >/dev/console
  174.  
  175. # Start the Mach network message server, which forwards Mach IPC over the
  176. # network and provides a name-to-port mapping service.
  177. #
  178. #if [ -f /usr/etc/nmserver ]; then
  179. #    /usr/etc/nmserver &                >/dev/console 2>&1
  180. #    (echo -n ' nmserver')                    >/dev/console
  181. #fi
  182.  
  183. # portmap converts Sun RPC program numbers into IP port numbers.
  184.  
  185. if [ -f /usr/etc/portmap ]; then
  186.     /usr/etc/portmap && (echo -n ' portmap')         >/dev/console
  187. fi
  188.  
  189. # Turn on IP routing.  If an explicit route is specified (the '*'
  190. # clause), either an IP address must be used or the router's hostname 
  191. # and IP address must be specified in the /etc/hosts file.  
  192. # Set the 'q' (quiet) flag by default to avoid broadcasting routes
  193. # all over the place.  [This should probably be an option.]
  194.  
  195. case ${ROUTER=-NO-} in
  196.     -ROUTED-)
  197.     if [ -f /usr/etc/routed -a $NETWORKUP = "-YES-" ]; then
  198.         /usr/etc/routed -q && (echo -n ' routed')    >/dev/console
  199.     fi
  200.     ;;
  201.     -NO-)
  202.     ;;
  203.     *)
  204.     if [ -f /usr/etc/route ]; then
  205.         /usr/etc/route add default $ROUTER 1    >/dev/console 2>&1
  206.     fi
  207.     ;;
  208. esac
  209.  
  210. # Start up the netinfo daemons.  This will only complete when the
  211. # local domain has bound to its parent domain, if it has a parent
  212. # (that is, if the machine is on a NetInfo network).  The message:
  213. #
  214. #   Still searching for parent network administration (NetInfo) server.
  215. #   Please wait, or press 'c' to continue without network user accounts.
  216. #   See your system administrator if you need help.
  217. #
  218. # comes from the local domain's netinfod; typically, you can wait a minute
  219. # or two and the local domain will eventually find a parent. As the
  220. # message says, the system is still searching for a parent server.
  221. # Typing 'c' aborts that search, which is probably not what you want.  
  222. # (You're most likely to see this message on a network-wide NetInfo server.)
  223. #
  224. # If you would like to customize this message to include the name or
  225. # telephone number of a network administrator, edit the text of the
  226. # message in /usr/lib/NextStep/Resources/English.lproj/NetInfo.strings,
  227. # or its equivalent for your usual boot language.
  228.  
  229. if [ -f /usr/etc/nibindd ]; then
  230.     /usr/etc/nibindd && (echo -n ' netinfo')    >/dev/console 2>&1
  231. fi
  232.  
  233. # If we are in an NIS domain, start up the appropiate services.
  234.  
  235. if [ "$YPDOMAIN" != "-NO-" -a $NETWORKUP = "-YES-" ]; then
  236.     # ypserv is run on NIS servers - machines with an /etc/yp/XXX dir
  237.     if [ -f /usr/etc/ypserv -a -d /etc/yp/$YPDOMAIN ]; then
  238.         /usr/etc/ypserv && (echo -n ' ypserv')        >/dev/console
  239.     fi
  240.     if [ -f /usr/etc/ypbind ]; then
  241.         /usr/etc/ypbind && (echo -n ' ypbind')        >/dev/console
  242.     fi
  243. fi
  244.  
  245. # The lookup daemon, lookupd, provides information to client programs
  246. # through the standard C library (such as gethostbyname()).  It obtains
  247. # the information from various network services: NetInfo, DNS (also called
  248. # the Domain Name Service - named - and BIND), and NIS.
  249.  
  250. if [ -f /usr/etc/nibindd -a -f /usr/etc/lookupd ]; then
  251.     /usr/etc/lookupd && (echo -n ' lookupd')        >/dev/console
  252. fi
  253.  
  254. # Start up time service.  If you're doing any sort of network file 
  255. # access, be sure NTP is enabled and properly configured, or you may 
  256. # see very strange errors and file consistency problems.
  257. #
  258. # NeXT's ntpd has been modified to acquire the NTP server
  259. # configuration from NetInfo (the /locations/ntp directory).
  260.  
  261. case ${TIME=-AUTOMATIC-} in
  262.     -AUTOMATIC-)
  263.     if [ -f /usr/etc/ntpd -a $NETWORKUP = "-YES-" ]; then
  264.         # Synchronize our clock to the network's time.
  265.         /usr/etc/ntp -F             >/dev/null
  266.         # Fire off ntpd to keep the clock in sync.
  267.         /usr/etc/ntpd && (echo -n ' ntpd')    >/dev/console
  268.     fi
  269.     ;;
  270.     -NO-)
  271.     ;;
  272.     *)
  273.     ;;
  274. esac
  275.  
  276. # biod is the NFS asynchronous block I/O daemon, which implements
  277. # NFS read-ahead and write-behind caching on NFS clients.
  278.  
  279. if [ -f /usr/etc/biod -a $NETWORKUP = "-YES-" ]; then
  280.     /usr/etc/biod 4 && (echo -n ' biod')             >/dev/console
  281. fi
  282.  
  283. (echo '.')                            >/dev/console
  284.  
  285. # Mount remote filesystems.
  286. fbshow -A -B -E -I "Mounting*File*Systems..."
  287. (echo 'Mounting remote filesystems')                >/dev/console
  288. mount -at nfs                         >/dev/console 2>&1
  289.  
  290. fbshow -A -B -E -I "Starting*System*Services..."
  291.  
  292. # Fileservice daemons are needed to import and export filesystems.
  293. (echo -n 'Starting file service daemons:')            >/dev/console
  294.  
  295. # If AppleTalk (EtherTalk) is desired, start up the AppleTalk daemon.
  296.  
  297. if [ -f /usr/etc/atalkd ]; then
  298.     if /usr/etc/atalkd >/dev/console 2>&1; then
  299.     (echo -n ' atalkd')                >/dev/console
  300.       fi
  301. fi
  302.  
  303. # Start the automounter only if /Net is a directory that is not
  304. # a symlink (symlinks to directories qualify as directories to test's
  305. # -d operation).
  306.  
  307. if [ -h /Net -o -f /Net ]; then
  308.     (echo "Warning: NeXT NFS automounter did not run.")    >/dev/console
  309. else
  310.     if [ -f /usr/etc/autonfsmount -a $NETWORKUP = "-YES-" ]; then
  311.         # The autonfsmounter will attempt a remount every 10 seconds,
  312.         # cache names for 12 hours [43200 seconds], mount things in
  313.         # /private/Net, ignore any NIS auto.master map, be triggered
  314.         # by references in the /Net directory, and use the fstab
  315.         # map (i.e., look in the mounts database -- /mounts in NetInfo,
  316.         # for example) to locate remote filesystems.
  317.         /usr/etc/autonfsmount    -tm 10 -tl 43200 \
  318.                     -a /private -m /Net -fstab \
  319.         && (echo -n ' autonfsmount') >/dev/console 2>&1
  320.     fi
  321. fi
  322.  
  323. # If exportfs finds something to export (either using /etc/exports or the
  324. # exports NetInfo directory), then start the NFS daemons (which service
  325. # NFS requests) and the mount server (which services NFS mount requests).
  326.  
  327. if [ -f /usr/etc/exportfs ]; then
  328.     # Clear the table of exported filesystems before running exportfs.
  329.     > /etc/xtab
  330.     if /usr/etc/exportfs -a >/dev/console 2>&1; then
  331.     # There is no "right" number of nfsd's. Infrequently-accessed
  332.     # servers can get by with 4 or fewer.  8 is not excessive for 
  333.     # heavily-loaded servers.
  334.     /usr/etc/nfsd 6 && (echo -n ' nfsd')         >/dev/console
  335.     /usr/etc/rpc.mountd && (echo -n ' rpc.mountd')    >/dev/console 2>&1
  336.     fi
  337. fi
  338.  
  339. # If AppleShare is desired, start up the AppleShare daemon.
  340.  
  341. if [ -f /usr/etc/ashared ]; then
  342.     if /usr/etc/ashared >/dev/console 2>&1; then
  343.     (echo -n ' ashared')                >/dev/console
  344.       fi
  345. fi
  346.  
  347. # If we are a Network Master become a BOOTP and BOOTPARAM server.  This is
  348. # the only thing that depends on the value of NETMASTER from /etc/hostconfig.
  349.  
  350. if [ "${NETMASTER=-NO-}" = "-YES-" ]; then
  351.     # If /etc/bootptab file exists, become a BOOTP server.  Note
  352.     # that bootpd gets information from /etc/bootptab even when
  353.     # NetInfo is running (the per-client information comes from
  354.     # NetInfo; the global information comes from /etc/bootptab).
  355.     if [ -f /usr/etc/bootpd -a -f /etc/bootptab ]; then
  356.         /usr/etc/bootpd && (echo -n ' bootpd')        >/dev/console
  357.     fi
  358.  
  359.     # bootparamd doesn't need a flat file.
  360.     if [ -f /usr/etc/rpc.bootparamd ]; then
  361.         /usr/etc/rpc.bootparamd && \
  362.         (echo -n ' rpc.bootparamd')            >/dev/console
  363.     fi
  364. fi
  365. (echo '.')                            >/dev/console
  366.  
  367. # Network daemons provide service to the outside world.
  368. (echo -n Starting network daemons:)                >/dev/console
  369.  
  370. # Run the Internet server daemon.
  371. if [ -f /usr/etc/inetd ]; then
  372.     /usr/etc/inetd && (echo -n ' inetd')            >/dev/console
  373. fi
  374.  
  375. # Remove junk from the outbound mail queue directory and start up
  376. # the sendmail daemon. /usr/spool/mqueue is assumed here even though
  377. # it can be changed in the sendmail configuration file.
  378. #
  379. # sendmail is started even if there's no configuration file
  380. # in /etc/sendmail/sendmail.cf.  sendmail can find a configuration file
  381. # based on information in NetInfo (the sendmail.cf property in the 
  382. # /locations/sendmail directory). If no sendmail configuration file 
  383. # exists, sendmail will exit with an appropriate error message.
  384. #
  385. # Any messages which end up in the queue, rather than being delivered
  386. # or forwarded immediately, will be processed once each hour.
  387.  
  388. if [ -f /usr/lib/sendmail ]; then
  389.     (cd /usr/spool/mqueue; rm -f nf* lf*)
  390.     /usr/lib/sendmail -bd -q1h 2>/dev/console && \
  391.         (echo -n ' sendmail')    >/dev/console
  392. fi
  393.  
  394. # lpd is the Berkeley line printer daemon.
  395.  
  396. if [ -f /usr/lib/lpd ]; then
  397.     rm -f /dev/printer
  398.     /usr/lib/lpd && (echo -n ' printer')            >/dev/console
  399. fi
  400.  
  401. # Start an SNMP agent if configured to do so.
  402.  
  403. if [ -f /usr/etc/snmpd ]; then
  404.     if /usr/etc/snmpd -N >/dev/console 2>&1; then
  405.         (echo -n ' snmpd')                >/dev/console
  406.     fi
  407. fi
  408.  
  409. (echo '.')                            >/dev/console
  410.  
  411. # NeXT services support the application environment
  412. (echo -n 'Starting NeXT services:')                >/dev/console
  413.  
  414. # The pasteboard server is used by the AppKit.
  415.  
  416. if [ -f /usr/etc/pbs ]; then
  417.     /usr/etc/pbs &&    (echo -n ' pbs')            >/dev/console
  418. fi
  419.  
  420. # exec_faxes starts up any appropriate fax modem daemons.
  421.  
  422. if [ -f /usr/lib/NextPrinter/exec_faxes ]; then
  423.     /usr/lib/NextPrinter/exec_faxes && (echo -n ' exec_faxes')    >/dev/console
  424. fi
  425.  
  426. # If ISDN Networking is desired, start up the PhoneConnector in daemon mode.
  427.  
  428. /usr/bin/niutil -read . /localconfig/ISDN/Networking >/dev/null 2>&1
  429. if [ $? -eq 0 ]; then
  430.     if [ -f /NextAdmin/PhoneConnector.app/PhoneConnector ]; then
  431.         /NextAdmin/PhoneConnector.app/PhoneConnector -Daemon YES && \
  432.             (echo -n ' PhoneConnector')     >/dev/console
  433.     fi
  434. fi
  435.  
  436. (echo '.')                            >/dev/console
  437.  
  438. # If NetWare Networking is desired, start it.
  439.  
  440. ( /usr/bin/niutil -read . /localconfig/NetWare | \
  441.     /usr/bin/egrep 'enable.+YES' ) >/dev/null 2>&1
  442. if [ $? -eq 0 ]; then
  443.  
  444.     #   Don't start NetWare  unless there is at least one network interface up
  445.  
  446.     if [ -n "`ifconfig -a | grep en0 | grep UP `" -o -n "`ifconfig -a | grep tr0 | grep UP `" ]; then
  447.         (echo -n "Starting NetWare:")            >/dev/console 2>&1
  448.         # Load and start the kernel server.
  449.         if [ -f /usr/lib/kern_loader/nuc/nuc_reloc ]; then
  450.         /usr/etc/kl_util -a /usr/lib/kern_loader/nuc/nuc_reloc \
  451.         >/tmp/nuc_log 2>&1
  452.         (echo -n ' nuc_reloc ')                >/dev/console 2>&1
  453.         fi
  454.         if [ -f /usr/netware/bin/nucinit ]; then
  455.         /usr/netware/bin/nucinit            >/dev/console 2>&1
  456.         (echo -n ' nucinit')                >/dev/console 2>&1
  457.         fi
  458.  
  459.         # Configure the protocol stack.
  460.         if [ -f /usr/netware/etc/npsd ]; then
  461.         /usr/netware/etc/npsd && (echo -n ' npsd')    >/dev/console 2>&1
  462.         fi
  463.  
  464.         # Start the Management Portal, an internal port for communicating
  465.         # with the kernel server.
  466.         if [ -f /usr/netware/bin/nwmp ]; then
  467.         /usr/netware/bin/nwmp start && (echo -n ' nwmp') >/dev/console 2>&1
  468.         fi
  469.  
  470.         # Start the Netware Service Advertisement Protocol Daemon, which looks for
  471.         # NetWare servers' advertisement packets.
  472.         if [ -f /usr/netware/etc/sapd ]; then
  473.         /usr/netware/etc/sapd && (echo -n ' sapd')    >/dev/console 2>&1
  474.         fi
  475.  
  476.         # Start the NetWare automounter.
  477.         if [ -f /usr/etc/autoNetWaremount ]; then
  478.         /usr/etc/autoNetWaremount && (echo -n ' autoNetWaremount') \
  479.         >/dev/console 2>&1
  480.         fi
  481.     else
  482.         (echo -n 'No ethernet interface: NetWare not started')    >/dev/console 2>&1
  483.     fi
  484.  
  485.     (echo '.')                            >/dev/console
  486. fi
  487.  
  488.  
  489. # InputManager startup procedure (Japanese)
  490.  
  491. if [ -d /NextLibrary/InputManager ]; then
  492.     (echo -n 'Starting input servers:')                >/dev/console
  493.     for i in /NextLibrary/InputManager/*
  494.     do
  495.         if [ -d $i ]; then
  496.             if [ $i = "/NextLibrary/InputManager/Resources" ]; then
  497.                 continue
  498.             fi
  499.             rcfile=`basename $i`
  500.             if [ -f $i/${rcfile}.rc ]; then
  501.                 sh $i/${rcfile}.rc $1
  502.             fi
  503.         fi
  504.     done
  505.     (echo '.')                            >/dev/console
  506. fi
  507.  
  508. # Any customizations to the startup sequence you would like to make should
  509. # be placed in /etc/rc.local; this way they can be preserved when your 
  510. # system is later upgraded to a new version of system software.
  511.  
  512. if [ -f /etc/rc.local ]; then
  513.     sh /etc/rc.local $1
  514. fi
  515.  
  516. # Unlock tip lines.  tip and UUCP share lock files so they don't get in
  517. # each other's way.
  518.  
  519. if [ -d /usr/spool/uucp ]; then
  520.     rm -f /usr/spool/uucp/LCK.*
  521.     rm -f /usr/spool/uucp/LCK/LCK.*
  522. fi
  523.  
  524. # Start standaard daemons that should always run
  525. (echo -n Starting standard daemons:)                >/dev/console
  526.  
  527. # update flushes the cached blocks from the filesystem using
  528. # the sync system call every 30 seconds.  This ensures the
  529. # disk is reasonably up-to-date in the event of a system crash.
  530.  
  531. update && (echo -n ' update')                    >/dev/console
  532.  
  533. # cron executes commands listed in /etc/crontab at specified times.
  534.  
  535. cron && (echo -n ' cron')                    >/dev/console
  536.  
  537. # accton is here for historical reasons.
  538.  
  539. # if [ -f /usr/adm/acct ]; then
  540. #    accton /usr/adm/acct && (echo -n ' accounting')        >/dev/console
  541. # fi
  542.  
  543. (echo '.')                            >/dev/console
  544.  
  545. # Submit a syslog note to indicate that we've successfully rebooted.
  546. /usr/ucb/logger -t reboot -p kern.crit "$MESSAGE complete"
  547.  
  548. exit 0
  549.